#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import unittest
from appium import webdriver
from time import sleep

PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)
# CMD启动元素定位工具 ; uiautomatorviewer
# dumpsys window windows | grep -E 'mFocusedApp'
# 查看活动的包名和活动名  ：  aapt dump badging + packages
# 查看手机上应用的packageName：adb shell pm list packages
# 应用对应的apk文件在手机上的安装位置则可以在上面的命令后加-f参数:adb shell pm list packages -f
# 安装Appium客户端 ：pip install Appium-Python-Client
# Android Emulator
# 启动Appium：  appium -a 127.0.0.1 -p 4723  –U  73047c33 --no-reset   （# appium -U UDID  --app  73047c33）

# '''清理环境：
# a. 删除 “adb shell pm list package selendroid” 列出来的所有包
# b. 删除用户目录下的/AppData/Local/Temp里面的Selendroid*文件 (Appium 1.3.4以下的版本，这个文件在C盘Windows的Temp目录下)'''

#adb局域网wifi链接手机： 1、adb tcpip 5555   2、adb connect +ip   3、adb disconnect + ip

class NewsTest(unittest.TestCase):

    ##初始化工作
    def setUp(self):
        PA = r'..\apps\huozhan(v2.1_4.25).apk'
        try:
            capabilities = {}
            capabilities['platformName'] = 'Android'    # 平台
            capabilities['platformVersion'] = '6.0'     #平台版本
            capabilities['app'] = PATH(PA)              #app路径
            capabilities['aaPackage'] = 'com.yanjianjun.huozhan'    #app包名
            capabilities['appActivity'] = 'com.yanjianjun.huozhan.start.WelcomeActivity'    #app活动名
            capabilities['unicodeKeyboard'] = 'True'   # 是否支持unicode的键盘。如果需要输入中文，要设置为“true”(不支持不得设置)
            capabilities['resetKeyboard'] = 'True'       # 是否在测试结束后将键盘重轩为系统默认的输入法。
            capabilities['newCommandTimeout'] = '120'    # Appium服务器待appium客户端发送新消息的时间。默认为60秒
            capabilities['noReset'] = True               # true:不重新安装APP，false:重新安装app
            capabilities['deviceName'] = 'MI6'           #手机ID(由adb devices获得)  序列号
            capabilities['udid'] = '73047c33'            #adb 本地链接
            # capabilities['udid'] = '192.168.1.198:5472'  #adb 无线链接
            driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', capabilities)     #启动服务器地址，后面跟的是手机信息
            sleep(5)
            self.driver = driver
            self.driver.implicitly_wait(60)
            return self.driver
        except Exception as e:
            raise e

#     # 具体的测试用例，一定要以test开头
    def test_add_contacts(self):
#         # el = self.driver.find_element_by_accessibility_id("com.miui.home:id/icon_icon")
#         # el.click()
#         # textfields = self.driver.find_elements_by_class_name("android.widget.EditText")
#         # textfields[0].send_keys("Appium User")
#         # textfields[2].send_keys("someone@appium.io")
#         #
#         # self.assertEqual('Appium User', textfields[0].text)
#         # self.assertEqual('someone@appium.io', textfields[2].text)
#         # self.driver.find_element_by_accessibility_id("Save").click()
        pass
#     # 退出清理工作
    def tearDown(self):
        self.driver.quit()
        # self.driver.remove_app('com.miui.home')
        # self.driver.remove_app('')

#
if __name__ == '__main__':
#     # suite = unittest.TestLoader().loadTestsFromTestCase(NewsTest)
#     # unittest.TextTestRunner(verbosity=2).run(suite)
    unittest.main()